function c=define_colors(scale)
% c=define_colors(256); (usage)
% 8 bit colors (0-255: 256 levels of intensity for RGB triplets)
% for use with the psychophysics toolbox (and other stuff) for sending a
% 4 bit colors (0-31: 32 levels of intensity for RGB triplets)
% color array to subfunctions and not having a global color pallet.
% coe@queensu.ca
%

%  i like to use  c.M_GREY as the background
% c.BACKGROUND=c.M_GREY


if nargout==0
    help define_colors
    %return
end
if nargin==1
    %scale=max(1,scale-1);
    scale_class=class(scale);
    scale=double(scale); 
else
    scale=1;
    scale_class=class(scale);
end
warning('off','MATLAB:intConvertNonIntVal')
c.RED		=eval([scale_class '([ 1  0  0]*scale)']);
c.GREEN     =eval([scale_class '([ 0  1  0]*scale)']);
c.BLUE		=eval([scale_class '([ 0  0  1]*scale)']);
c.MAGENTA	=eval([scale_class '([ 1  0  1]*scale)']);
c.YELLOW	=eval([scale_class '([ 1  1  0]*scale)']);
c.CYAN		=eval([scale_class '([ 0  1  1]*scale)']);
c.VIOLET	=eval([scale_class '([ .5  0  .5]*scale)']);
c.BROWN 	=eval([scale_class '([.5 .25  0]*scale)']);
c.INDIGO	=eval([scale_class '([.2  0  .6]*scale)']);
c.PINK  	=eval([scale_class '([ 1  .6  .8]*scale)']);
c.ORANGE	=eval([scale_class '([ 1 .5  0]*scale)']);
c.LAVENDER 	=eval([scale_class '([ .8  .6  1]*scale)']);
c.PURPLE  	=eval([scale_class '([ .6  .2  1]*scale)']);
c.BLACK     =eval([scale_class '([ 0  0  0]*scale)']);
c.WHITE     =eval([scale_class '([ 1  1  1]*scale)']);
c.D_GREY	=eval([scale_class '([.3 .3 .3]*scale)']);
c.M_GREY	=eval([scale_class '([.5 .5 .5]*scale)']);
c.L_GREY	=eval([scale_class '([.8 .8 .8]*scale)']);
warning('on','MATLAB:intConvertNonIntVal')

if nargout==0
    colors=fieldnames(c);
    figure(097244);clf;hold on
    for i = 1:length(colors)
        fill([rem(i-1,3)-1;rem(i-1,3);rem(i-1,3);rem(i-1,3)-1],[ceil(i/3); ceil(i/3);ceil(i/3)-1;ceil(i/3)-1]  ,double(c.(colors{i}))/scale)
        text(rem(i-1,3)-.9,ceil(i/3)-.5,colors{i}, 'color',double(c.(colors{length(colors)-i+1}))/scale,'interp','none')
    end
    axis off
    
    %     figure(32454);clf;hold on
    % fill([3;3;4;4],[5;6;6;5],c.VIOLET);
    % fill([3;3;4;4],[5;6;6;5]-1,c.RED);
    % fill([3;3;4;4],[5;6;6;5]-2,c.PURPLE);
    % fill([3;3;4;4],[5;6;6;5]-3,c.PINK);
    % fill([3;3;4;4],[5;6;6;5]-4,c.MAGENTA);
    % fill([3;3;4;4]-2,[5;6;6;5]-2,c.INDIGO);
    % fill([3;3;4;4]-1,[5;6;6;5]-2,c.BLUE);
    % %fill([3;3;4;4],[5;6;6;5]-2,c.PURPLE);
    % fill([3;3;4;4]+1,[5;6;6;5]-2,c.LAVENDER);
    % fill([3;3;4;4]+2,[5;6;6;5]-2,c.CYAN);
    % fill([1;1;2;2], [4;5;5;4],c.GREEN)
    % fill([1;1;2;2], [4;5;5;4]+1,c.YELLOW)
    % fill([1;1;2;2]+1, [4;5;5;4]+1,c.ORANGE)
    % fill([1;1;2;2]+1, [4;5;5;4],c.BROWN)
end
